#define tamArrayHead 100 /*tamanho para o vetor head de cada vetor de tamanho*/
#define qtdWordPorPos 100000  /*quantidade de palavras que cada posição da head suporta*/
#define sizeWord 50
#define tamArrayPorTam 14000
#define porcentagem 70
/*
    Estrutura para armazenar as palavras geradas
*/
typedef struct {
    char *tam1; /*ponteiro com palavras de tamanho 1 encontradas*/
    char **tam2; /*ponteiro com palavras de tamanho 2 encontradas*/
    char **tam3; /*ponteiro com palavras de tamanho 3 encontradas*/
    char **tam4; /*ponteiro com palavras de tamanho 4 encontradas*/
    char **tam5; /*ponteiro com palavras de tamanho 5 encontradas*/
    int *qtdadePorTam; /*numero de palavras encontras por cada tamanho até cinco*/
    int totalWord;    
}WordGenerate;

char geraletra();
int gerapalavra(char **palavras, char *findoutWord, int tamanho, char **palavrasEncontras, int conPE);
void alocarWG(WordGenerate *W);
void findWordUntilFive(WordGenerate *WG, WordFromFile *WFF, int ini, int fim);
int concatenarVetXVetY(char **vetorPrincipal, char **vetorSecundario, int tamVetorPrincipal, int tamVetorSecundario, WordFromFile *WFF);
void concatenar(WordFromFile *WFF, WordGenerate *WG, char **vetorPrincipal, int tamVetorPrincipal);
void findAllWords(WordGenerate *WG, WordFromFile *WFF);
void imprimeWG(WordGenerate *WG);
